﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace SLGameEngine
{
    public delegate void InvokeCreateNewMap(bool success);
    public delegate void ObjectLoadComplete();

    public class Enums
    {
        public enum PaintMethod
        {
            None=0,
            Draw = 1,
            Fill = 2,
            Erase = 3,
            Dropper=4,
            Select=5,
        };

        public enum AnimationType
        {
            Unknown=-1,
            Walk=0,
            Fly=1,
            Attack=2,
            Hit=3,
            Death=4,
            Idle=5,
            Run=6,
            End=7,
        }

        public enum Direction
        {
            North = 0,
            NE = 1,
            East = 2,
            SE = 3,
            South = 4,
            SW = 5,
            West = 6,
            NW = 7,
            End=8,
        };

        public enum Layer
        {
            Layer1 = 0,
            Layer2 = 1,
        };
    }

    public class Consts
    {
        public static bool ShowGrid = true;
        public static int PreviewRadius = 128;
        public static int DefaultMapWidth = 40;
        public static int DefaultMapHeight = 40;
        public static int DefaultTileRadius = 128;

        public static int TerrainLayerCount = 2;
        public static int ToolbarHeight = 34;
        public static int ImageToolbarWidth = 250;
        //public static ImageResource SelectedImageResource = null;
        public static int None = -1;

        public static int LastTileRadius = 128;
        public static int LastHightInTiles = 20;
        public static int LastWidthInTiles = 20;
        public static string LastMapName = "Default Map";
        public static Enums.PaintMethod PaintMethod = Enums.PaintMethod.Select;

        public static string Unknown = "Unknown";

        public static int AvatarSpeed = 20;

        // Map File Attribute Names

        public static string MapAttributeMap = "Map";
        public static string MapAttributeMapName = "MapName";
        public static string MapAttributeWidthInTiles = "WidthInTiles";
        public static string MapAttributeHeightInTiles = "HeightInTiles";
        public static string MapAttributeTileRadius = "TileRadius";
        public static string MapAttributeLayerCount = "LayerCount";
        public static string MapAttributeMapObject = "MapObject";
        public static string MapAttributePosX = "PosX";
        public static string MapAttributePosY = "PosY";
        public static string MapAttributeGameObject = "GameObject";
        public static string MapAttributeCreatureObject = "CreatureObject";
        public static string MapAttributeBaseObjectID = "BaseObjectID";
        public static string MapAttributeTileIDsLayer = "TileIDsLayer";
        public static string MapAttributeOpacityIDsLayer = "OpacityIDsLayer";
        public static string MapAttribute = "";
    }
}

